using SheLife.Domain.Entities;

namespace SheLife.Domain.Interfaces.Repositories
{
    /// <summary>
    /// 系统用户仓储接口
    /// </summary>
    public interface ISystemUserRepository : IRepository<SystemUser>
    {
        Task<SystemUser> GetByUsernameAsync(string username);
        Task<SystemUser> GetByEmailAsync(string email);
        Task<SystemUser> GetByPhoneAsync(string phone);
        Task<IEnumerable<SystemUser>> GetByRoleIdAsync(Guid roleId);
        Task<IEnumerable<SystemUser>> GetByStatusAsync(bool status);
        Task<bool> IsUsernameExistsAsync(string username);
        Task<bool> IsEmailExistsAsync(string email);
        Task<bool> IsPhoneExistsAsync(string phone);
    }
}